package com.dubbo.service.business.pay;

import com.dubbo.domain.User;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;

/**
 * 支付宝支付
 * @author lihongwu
 * 2019年1月10日 上午10:23:43
 */
public interface AliPayService {
	
	/**
	 * 申请支付
	 *
	 * @author lihongwu
	 * 2019年1月10日 上午11:08:23
	 * @param request
	 * @param orderId
	 * @return
	 */
	Map<String, Object> getPrice(HttpServletRequest request, String orderId, String walletPrice, User user);
	
	/**
	 * 支付回调地址
	 *
	 * @author lihongwu
	 * 2019年1月10日 上午11:08:38
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	String notify(HttpServletRequest request, HttpServletResponse response) throws IOException;

	/**
	 * 提现
	 *
	 * @author lihongwu
	 * 2019年1月10日 上午11:08:45
	 * @param request
	 * @param account
	 * @param name
	 * @param money
	 * @return
	 * @throws Exception
	 */
	Map<String, Object> withdraw(HttpServletRequest request, User user, String account, String name, String money)throws Exception;
	
	/**
	 * 厂家不接单退款给代理商
	 *
	 * @author lihongwu
	 * 2019年1月12日 上午10:45:21
	 * @param request
	 * @param orderId
	 * @return
	 */
	Map<String, Object> refund(HttpServletRequest request, String orderId);

	/**
	 * 订单售后退款
	 *
	 * @author lihongwu
	 * 2019年1月12日 下午2:47:43
	 * @param request
	 * @param orderId
	 * @param money
	 * @return
	 */
	Map<String, Object> afterSaleRefund(HttpServletRequest request, String orderId, String money) ;
}
